class Solution {
public:
    int a[255];
    int b[255];
    bool isIsomorphic(string s, string t) {
        //如何建立映射 也就是说s和t之间有某种联系
        //可以把s和t的差值存入一个数组中 这个数组的索引是s字母的下标 下次再遇到s字母的时候就加上差值看看是不是 不是就false
        //还有一个问题就是对应b有可能重复 所以b也得存个哈希表 如果b[t[i]]已经存在过了那也return false
        //a已经对应a了就不能再对应b了 怎么实现？ 如果
        for(int i = 0;i<255;++i)
        {
            a[i] = -1000;
        }
        for(int i = 0;i<s.size();++i)
        {
            if(a[s[i]] == -1000)
            {
                if(b[t[i]]!=0) return false;
                a[s[i]] = s[i] - t[i];
                b[t[i]]++;
            }
            else
            {
                if(s[i] - a[s[i]] != t[i])return false;
            }
        }
    return true;
    }

};
